Skip to content

feat(deno): migrate root package.json → deno.json imports (Class B, standards#253 longtail) - #15

Merged
hyperpolymath merged 1 commit into
mainfrom
campaign-253/delete-redundant-pkg-json
May 31, 2026
Merged

feat(deno): migrate root package.json → deno.json imports (Class B, standards#253 longtail)#15
hyperpolymath merged 1 commit into
mainfrom
campaign-253/delete-redundant-pkg-json

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

excel-economic-numbers-tool is a ReScript-driven Office add-in (Excel + LibreOffice). The package.json had @microsoft/office-js as the lone runtime dep + @rescript/core + rescript as devDeps.

Class B migration:

  • Add npm:rescript@^12.0.0 + npm:@rescript/core@^1.6.0 + npm:@microsoft/office-js@^1.1.0 to deno.json imports.
  • Replace the broken bare rescript build in the build task with the canonical deno run -A --node-modules-dir=auto npm:rescript@^12.0.0 pattern (the bare form would fail in Deno-only environments — Deno doesn't have npx).
  • Add nodeModulesDir: "auto" for rescript's install lifecycle.
  • Delete package.json (now redundant — deno.json covers all runtime + dev deps + scripts).

Office host integration unaffected: @microsoft/office-js is loaded by the Office host from the served manifest, not from the local node_modules/. Deno's --node-modules-dir=auto regenerates the local node_modules/ at build time for rescript's lifecycle hooks.

Test plan

  • CI green
  • deno task rescript:build produces equivalent .res.js output to prior npx rescript build
  • deno task build chains rescript build + bundle as before

Per per-repo follow-up tracker for standards#253 (campaign closed 2026-05-31, longtail tracked in project_estate_npm_to_deno_2026_05_28.md).

Refs hyperpolymath/standards#253.

🤖 Generated with Claude Code

…tandards#253 longtail)

excel-economic-numbers-tool is a ReScript-driven Office add-in
(Excel + LibreOffice). The package.json had `@microsoft/office-js` as
the lone runtime dep + `@rescript/core` + `rescript` as devDeps.

Class B migration:

- Add `npm:rescript@^12.0.0` + `npm:@rescript/core@^1.6.0` +
  `npm:@microsoft/office-js@^1.1.0` to `deno.json` `imports`.
- Replace the broken bare `rescript build` in the `build` task with
  the canonical `deno run -A --node-modules-dir=auto npm:rescript@^12.0.0`
  pattern (the bare form would fail in Deno-only environments — Deno
  doesn't have npx).
- Add `nodeModulesDir: "auto"` for rescript's install lifecycle.
- Delete `package.json` (now redundant — `deno.json` covers all
  runtime + dev deps + scripts).

Office host integration unaffected: `@microsoft/office-js` is loaded
by the Office host from the served manifest, not from the local
`node_modules/`. Deno's `--node-modules-dir=auto` regenerates the
local `node_modules/` at build time for rescript's lifecycle hooks.

Per per-repo follow-up tracker for standards#253 (campaign closed
2026-05-31, longtail tracked in project_estate_npm_to_deno_2026_05_28.md).

Refs hyperpolymath/standards#253.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath
hyperpolymath enabled auto-merge (squash) May 31, 2026 07:21
@hyperpolymath
hyperpolymath merged commit e0fb183 into main May 31, 2026
9 of 28 checks passed
@hyperpolymath
hyperpolymath deleted the campaign-253/delete-redundant-pkg-json branch May 31, 2026 07:33
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 154 issues detected

Severity Count
🔴 Critical 14
🟠 High 39
🟡 Medium 101

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Action perpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in boj-build.yml",
    "type": "missing_timeout_minutes",
    "file": "boj-build.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in casket-pages.yml",
    "type": "missing_timeout_minutes",
    "file": "casket-pages.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in casket-pages.yml",
    "type": "missing_timeout_minutes",
    "file": "casket-pages.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in ci.yml",
    "type": "missing_timeout_minutes",
    "file": "ci.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in ci.yml",
    "type": "missing_timeout_minutes",
    "file": "ci.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in ci.yml",
    "type": "missing_timeout_minutes",
    "file": "ci.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in ci.yml",
    "type": "missing_timeout_minutes",
    "file": "ci.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in ci.yml",
    "type": "missing_timeout_minutes",
    "file": "ci.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in ci.yml",
    "type": "missing_timeout_minutes",
    "file": "ci.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant